package org.ww.product;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;

/**
 * 整合SpringCache步骤:
 * 1、引入依赖：spring-boot-starter-cache、redis
 * 2、写配置：配置使用redis作为配置缓存
 * 3、测试使用缓存
 *      @Cacheable :将数据保存入缓存
 *      @CacheEvict ：将数据从缓存中进行删除
 *      @CachePut ：不影响方法执行更新缓存
 *      @Caching ：组合以上多个缓存操作
 *      @CacheConfig ： 在类级别共享缓存的相同配置
 *   1）开启缓存：EnableCaching
 *   2）使用注解
 * 4、默认行为：
 *     1）如果缓存中有，方法就不会被调用
 *     2）使用自动生成的名字::SimpleKey[]
 *     3）存入redis中的内容使用jdk方式进行序列化
 *     4）默认的过期时间是-1永久
 *   自定义：
 *      1）不用它自动生成的key名字，使用我们自己定义的
 *      2）统一使用json的序列化方式将数据存入redis（如果我们使用python语言想获取redis中的内容就不能了）
 *      3）指定缓存数据的存活时间
 */
@EnableRedisHttpSession
@EnableFeignClients(basePackages = "org.ww.product.feign")
@SpringBootApplication(scanBasePackages = "org.ww")
public class GulimallProductApplication {

    public static void main(String[] args) {
        SpringApplication.run(GulimallProductApplication.class, args);
    }

}
